app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
APP(id, app(p, x)) → APP(s, app(id, x))
APP(app(div, app(s, x)), app(s, y)) → APP(minus, x)
APP(app(minus, app(s, x)), app(s, y)) → APP(minus, app(p, app(s, x)))
APP(id, x) → APP(s, x)
APP(app(div, app(s, x)), app(s, y)) → APP(id, y)
APP(id, x) → APP(s, app(s, x))
APP(app(map, f), app(app(cons, x), xs)) → APP(f, x)
APP(app(div, app(s, x)), app(s, y)) → APP(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
APP(app(map, f), app(app(cons, x), xs)) → APP(app(map, f), xs)
APP(id, x) → APP(s, app(s, app(s, x)))
APP(id, app(p, x)) → APP(id, x)
APP(app(minus, app(s, x)), app(s, y)) → APP(p, app(s, x))
APP(app(div, app(s, x)), app(s, y)) → APP(app(div, app(app(minus, x), app(id, y))), app(s, y))
APP(app(div, app(s, x)), app(s, y)) → APP(div, app(app(minus, x), app(id, y)))
APP(app(map, f), app(app(cons, x), xs)) → APP(cons, app(f, x))
APP(app(minus, app(s, x)), app(s, y)) → APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
APP(app(div, app(s, x)), app(s, y)) → APP(app(minus, x), app(id, y))
APP(id, app(p, x)) → APP(id, app(s, app(id, x)))
APP(app(map, f), app(app(cons, x), xs)) → APP(app(cons, app(f, x)), app(app(map, f), xs))
APP(app(minus, app(s, x)), app(s, y)) → APP(p, app(s, y))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
APP(id, app(p, x)) → APP(s, app(id, x))
APP(app(div, app(s, x)), app(s, y)) → APP(minus, x)
APP(app(minus, app(s, x)), app(s, y)) → APP(minus, app(p, app(s, x)))
APP(id, x) → APP(s, x)
APP(app(div, app(s, x)), app(s, y)) → APP(id, y)
APP(id, x) → APP(s, app(s, x))
APP(app(map, f), app(app(cons, x), xs)) → APP(f, x)
APP(app(div, app(s, x)), app(s, y)) → APP(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
APP(app(map, f), app(app(cons, x), xs)) → APP(app(map, f), xs)
APP(id, x) → APP(s, app(s, app(s, x)))
APP(id, app(p, x)) → APP(id, x)
APP(app(minus, app(s, x)), app(s, y)) → APP(p, app(s, x))
APP(app(div, app(s, x)), app(s, y)) → APP(app(div, app(app(minus, x), app(id, y))), app(s, y))
APP(app(div, app(s, x)), app(s, y)) → APP(div, app(app(minus, x), app(id, y)))
APP(app(map, f), app(app(cons, x), xs)) → APP(cons, app(f, x))
APP(app(minus, app(s, x)), app(s, y)) → APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
APP(app(div, app(s, x)), app(s, y)) → APP(app(minus, x), app(id, y))
APP(id, app(p, x)) → APP(id, app(s, app(id, x)))
APP(app(map, f), app(app(cons, x), xs)) → APP(app(cons, app(f, x)), app(app(map, f), xs))
APP(app(minus, app(s, x)), app(s, y)) → APP(p, app(s, y))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
APP(id, app(p, x)) → APP(id, x)
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ ATransformationProof
↳ QDP
↳ QDP
↳ QDP
APP(id, app(p, x)) → APP(id, x)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ ATransformationProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
id(p(x)) → id(x)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
APP(app(minus, app(s, x)), app(s, y)) → APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ QDP
APP(app(minus, app(s, x)), app(s, y)) → APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ ATransformationProof
↳ QDP
↳ QDP
APP(app(minus, app(s, x)), app(s, y)) → APP(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(p, app(s, x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ ATransformationProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ QDP
minus(s(x), s(y)) → minus(p(s(x)), p(s(y)))
p(s(x)) → x
p(s(x0))
p(s(x)) → x
POL(minus(x1, x2)) = 2·x1 + 2·x2
POL(p(x1)) = x1
POL(s(x1)) = 2 + x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ MNOCProof
↳ QDP
↳ ATransformationProof
↳ QDP
↳ RuleRemovalProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDP
minus(s(x), s(y)) → minus(p(s(x)), p(s(y)))
p(s(x0))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPApplicativeOrderProof
↳ QDP
APP(app(div, app(s, x)), app(s, y)) → APP(app(div, app(app(minus, x), app(id, y))), app(s, y))
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
div1(s(x), s(y)) → div1(minus(x, id(y)), s(y))
id(x) → x
minus(s(x), s(y)) → minus(p(s(x)), p(s(y)))
minus(x, 0) → x
p(s(x)) → x
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
APP(app(div, app(s, x)), app(s, y)) → APP(app(div, app(app(minus, x), app(id, y))), app(s, y))
POL(0) = 0
POL(div1(x1, x2)) = x1
POL(id(x1)) = x1
POL(minus(x1, x2)) = x1
POL(p(x1)) = x1
POL(s(x1)) = 1 + x1
app(id, x) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(app(minus, x), 0) → x
app(p, app(s, x)) → x
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPApplicativeOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
APP(app(map, f), app(app(cons, x), xs)) → APP(f, x)
APP(app(map, f), app(app(cons, x), xs)) → APP(app(map, f), xs)
app(app(map, f), nil) → nil
app(app(map, f), app(app(cons, x), xs)) → app(app(cons, app(f, x)), app(app(map, f), xs))
app(app(minus, x), 0) → x
app(app(minus, app(s, x)), app(s, y)) → app(app(minus, app(p, app(s, x))), app(p, app(s, y)))
app(p, app(s, x)) → x
app(app(div, 0), app(s, y)) → 0
app(app(div, app(s, x)), app(s, y)) → app(s, app(app(div, app(app(minus, x), app(id, y))), app(s, y)))
app(id, x) → x
app(id, x) → app(s, app(s, app(s, x)))
app(id, app(p, x)) → app(id, app(s, app(id, x)))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDPSizeChangeProof
APP(app(map, f), app(app(cons, x), xs)) → APP(f, x)
APP(app(map, f), app(app(cons, x), xs)) → APP(app(map, f), xs)
From the DPs we obtained the following set of size-change graphs: